A GPS receiver determines its position on Earth by using the GPS constellation of twenty-four satellites orbiting twice a day at an altitude of approximately 20,183.61 kilometers above Earth's surface. These satellites provide navigation references to allow triangulation with three to four satellites acting as precise reference points to determine position (latitude, longitude, altitude, and in some applications velocity) at the GPS receiver. The GPS satellites are provided in six orbital planes, at 55 degree inclination. Each orbital plane contains four satellites. The GPS constellation should provide a GPS receiver with four to twelve satellites being visible from any point on Earth having a clear view of the sky.
Traditionally, GPS satellites transmit ephemeris and clock correction parameters directly to GPS receivers. The ephemeris and clock correction data gives a GPS receiver all the information it needs to compute the satellite position as a function of time, and to compute the satellite clock error parameter, also as a function of time. A GPS satellite transmits the data in a broadcast mode from the satellite to the ground at a slow 50 bit per second (BPS) rate. It takes between eighteen and thirty seconds for a single GPS satellite broadcast message to be transmitted one time, depending on when the GPS receiver synchronizes with the transmitted broadcast message. The specification for the over-the-air protocol for the satellite-to-ground message is published in ICD-GPS-200 Specification, published by Rockwell Corporation.
FIG. 1 details a prior art GPS satellite broadcast message 100. Each message 100 has five subframes, subframe 1 111, subframe 2 112, subframe 3 113, subframe 4 114, and subframe 5 115. Each subframe 111, 112, 113, 114, 115 has ten words 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 of thirty bits each. Each thirty-bit word has twenty-four information bits and six bits of parity. For the first word in each subframe, the telemetry (TLM) word 120, there is a fixed eight-bit preamble 131, a sixteen-bit data section 132, and the six-bit parity 133. For the second word in each subframe, a hand-over word (HOW) 121, there a seventeen-bit time of week (TOW) parameter 141, a seven-bit data section 142 containing a three-bit subframe identification, and the six-bit parity 143. Because GPS satellite data messages are transmitted at 50 BPS, it takes precisely six seconds to transmit each 300-bit subframe 111, 112, 113, 114, 115 and thirty seconds to transmit the entire 1500-bit message 100. Refer to ICD-GPS-200 Specification for complete details on the GPS satellite broadcast message content and format.
The message transmission is precisely synchronized with GPS time, and the message 100 is such that each bit of the 50 BPS sequence is precisely known in GPS time coordinates. Each bit represents 0.02 seconds additionally-elapsed time since midnight of the previous Saturday in Greenwich, England. The GPS system keeps track of this elapsed time by the TOW parameter 141. The GPS clock starts at midnight Saturday in Greenwich, England and counts seconds until the next Saturday at midnight. There are 604,800 seconds contained in one GPS week, then the clock is reset to begin the next week. A GPS Week counter is then used to keep track of time outside of one week. Within one data bit, time is known to within 0.001 seconds, because each data bit of the 50 BPS message is also coherent and synchronized with the 1023-bit spread spectrum spreading code. It takes precisely twenty repeats of the signal spreading code to create one data bit. Thus, time is known to under 20 millisecond accuracy by a GPS receiver counting the integer number of pseudo random noise (PRN) code repeats.
Finally, time is known to one millisecond accuracy by a GPS receiver measuring the fraction of one PN code repeat interval (also known as the code phase at the measurement time). Consequently, the 50 BPS message and underlying PN spreading code is used by every GPS receiver built today to obtain a measure of the time as transmitted from the GPS satellite, effectively translating the precise clock in the satellite to the ground-based GPS receiver by adding the propagation delay from the satellite to the receiver to the time indicated by the 50 BPS message.
In any implementation in which a GPS receiver (or sensor) in embedded into a cellular phone for location purposes, the slow 50 BPS data rate is a problem because it slows the availability of position coordinates and thus slows down a response to the location determination request. In addition, the data transmitted at 50 BPS can become difficult to demodulate in weak signal conditions such as in a building or under heavy foliage. To combat this problem, the idea of Assisted GPS was created.
In Assisted GPS, communications network infrastructure is used to assist the mobile GPS receiver, which can be implemented as a standalone device or integrated with a radiotelephone handset. Assisted GPS establishes a GPS reference network (or a wide-area DGPS network, explained in further detail below) whose reference GPS receivers have clear views of the sky and can operate continuously to monitor the real-time GPS constellation status. The GPS reference network thus provides precise data for each GPS satellite at a particular epoch time. This GPS reference network is also connected with the cellular infrastructure.
At least three modes of Assisted GPS operation can be supported: “MS-assisted,” “MS-based,” and “autonomous.” For MS-assisted GPS, the mobile station (MS) GPS receiver position is calculated at the network. Typically, the mobile station receives assistance data, such as GPS time, Doppler, and code phase search window, and transmits pseudo range data back to the network. For MS-based GPS, the mobile station GPS receiver's position is calculated at the handset. Typically, the mobile station receives assistance data, such as GPS time, ephemeris, and clock correction, and transmits the calculated position back to the network if required. For autonomous GPS, the mobile station GPS receiver's position is calculated at the handset with very limited assistance from the network (or no assistance at all). Autonomous GPS can be loosely characterized as MS-based, although typically for autonomous GPS, the mobile GPS receiver's position is determined independently without network assistance.
For any GPS application, position errors are contributed by the satellite clock, satellite orbit, ephemeris prediction, ionospheric delay, tropospheric delay, and selective availability (SA), which is an accuracy degradation scheme designed to reduce the position accuracy available to civilian users. To reduce these errors, range and range-rate corrections can be applied to the raw pseudo range measurements in order to create a position solution that is accurate to a few meters in open environments. One such correction technique is differential GPS (DGPS), which uses a reference GPS receiver at a surveyed position to send correcting information to a mobile station GPS receiver over a communication link. For MS-assisted GPS, corrections can be applied directly at the network or a server to the pseudo ranges and pseudo range-rates received from the mobile GPS receiver. For MS-based GPS, corrections must be transmitted to the mobile GPS receiver either via “point-to-point” or “broadcast” (“point-to-multipoint”) transmissions. Note that Assisted GPS may operate with or without differential GPS corrections; the corrections are generally required, however, for those location applications with the most demanding accuracy requirements.
The determination of accurate GPS time in an Assisted GPS receiver is important for location determination, because GPS satellite positioning is based on a time of arrival (TOA) principle. The TOA principle pinpoints a GPS receiver's location with time-stamped range information, and thus the accuracy of the GPS time in the GPS receiver affects the integrity of the location calculated from the GPS signals.
The three main types of information transmitted include the satellite transmission of its own position, the satellite time, and a PRN code which is used by the GPS GPS receiver to calculate its range from the satellite. The satellite position and time is derived from precise ground-based tracking equipment and atomic clocks accurate to one second in 300,000 years. The internal stream of PRN code (which appears as a very long sequence of random bits) generated in the GPS receiver can be compared to the received bits of PRN code from the satellite; aligning the two data streams to obtain a time shift or displacement represents the precise travel time from the satellite to the GPS receiver.
At the GPS signal-receiving end, the four main conventional GPS receiver functions are:
1) Measuring distance from the satellites to the receiver by determining the pseudo ranges (code phases);
2) Extracting the time of arrival of the signal from the contents of the satellite transmitted message;
3) Computing the position of the satellites by evaluating the ephemeris data at the indicated time of arrival; and
4) Calculating the position of the receiving antenna and the clock bias of the receiver by using the above data items.
The process of searching for and acquiring GPS signals, decoding satellite positioning data (and other data) for several satellites, and computing the accurate time of day for the location of the GPS receiver from such data is computationally extensive and time consuming.
What is needed is a method of transmitting the data from the raw 1500-bit long pattern for all the subframes of a GPS satellite broadcast message in an efficient manner so that a GPS receiver can utilize the contents of the entire 1500-bit message without having to actually receive all the bits. This accomplishes both goals of delivering the satellite orbit parameters and providing the GPS receiver with a method of time synchronization. It would be further desirable to provide a method and apparatus that provides as minimal degradation as possible in the performance of Assisted GPS systems.